package com.hzncc.flowable_diboot.payment.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.diboot.core.service.BaseService;
import com.diboot.core.vo.Pagination;
import com.hzncc.flowable_diboot.contract.vo.SalesContractListVO;
import com.hzncc.flowable_diboot.payment.dto.PaymentContractDTO;
import com.hzncc.flowable_diboot.payment.entity.PaymentContract;
import com.hzncc.flowable_diboot.payment.vo.*;
import com.hzncc.flowable_diboot.project_contracts.entity.ProjectContractAmount;
import com.hzncc.flowable_diboot.project_contracts.vo.ProjectContractAmountDetailVO;
import com.hzncc.flowable_diboot.project_contracts.vo.ProjectContractAmountListVO;
import com.sap.conn.jco.JCoException;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
* 合同收款 相关Service接口定义
* @author MyName
* @version 1.0
* @date 2024-10-28
* Copyright © MyCorp
*/
public interface PaymentContractService extends BaseService<PaymentContract> {

    Map<String,List<SapPaymentContractListVO>> getSapPaymentContract(String sapCustomerId);

//    OldReceiveListVO getOldReceive(String sapCustomerId);

    List<SapPaymentContractListVO> getOldReceive(String sapCustomerId);

    List<PaymentContractListVO> getPaymentContractList(PaymentContractDTO queryDto, Pagination pagination);

    Boolean createPaymentContract(PaymentContractDetailVO paymentContract);

    Boolean updatePaymentContract(PaymentContractDetailVO paymentContract);

    Boolean revokePaymentRegister(String registerId) throws JCoException;

    Boolean cancelPaymentRegister(String registerId) throws JCoException;

    Boolean revokePaymentContract(String id);

    Boolean cancelPaymentContract(String id);

    Boolean updatePaymentContractStatus(String id,String status);

    boolean deleteCheck(Set<String> singleton);

}